Run 3 summary

https://teacher.skyeng.ru/teacherCabinet

Tested 2021-01-18 23:16:14 using Chrome 87.0.4280.141. 3 runs and connectivity native.  

All runs: 1 - 2 - 3

SummaryWaterfall MetricsCoachPageXrayThird partyScreenshots

Summary

MetricValue
Performance score59
Total page size4.5 MB
Requests278
TTFB3.338 s
Fully Loaded17.573 s
First Paint3.768 s
FCP3.834 s
LCP7.614 s
CLS0.008254719371148607
Total Blocking Time2.361 s
Max Potential FID495 ms
CPU long tasks32
Screenshot
| Waterfall | | Download HAR | 

Waterfall

| Performance advice | Best practice advice | Privacy advice | Page info | Technologies | 

Coach

The coach helps you find performance problems on your web page using web performance best practice rules. And gives you advice on privacy and best practices.

I am the coach

Coach score

Performance advice (59)

TitleAdviceScore
Don't scale images in the browser (avoidScalingImages)The page has 1 image that are scaled more than 100 pixels. It would be better if those images are sent so the browser don't need to scale them.90
Description: It's easy to scale images in the browser and make sure they look good in different devices, however that is bad for performance! Scaling images in the browser takes extra CPU time and will hurt performance on mobile. And the user will download extra kilobytes (sometimes megabytes) of data that could be avoided. Don't do that, make sure you create multiple version of the same image server-side and serve the appropriate one.
Offenders:
Avoid slowing down the critical rendering path (fastRender)The style https://teacher.skyeng.ru/assets/669a2253a96c97c3aad1ea34f0ae0a06.css is larger than the magic number TCP window size 14.5 kB. Make the file smaller and the page will render faster. Avoid loading synchronously JavaScript inside of head, you shouldn't need JavaScript to render your page! The page has 1 render blocking CSS request and 5 blocking JavaScript requests inside of head.45
Description: The critical rendering path is what the browser needs to do to start rendering the page. Every file requested inside of the head element will postpone the rendering of the page, because the browser need to do the request. Avoid loading JavaScript synchronously inside of the head (you should not need JavaScript to render the page), request files from the same domain as the main document (to avoid DNS lookups) and inline CSS or use server push for really fast rendering and a short rendering path.
Offenders:
Avoid using Google Tag Manager (googletagmanager)The page is using Google Tag Manager, this is a performance risk since non-tech users can add JavaScript to your page.0
Description: Google Tag Manager makes it possible for non tech users to add scripts to your page that will downgrade performance.
Inline CSS for faster first render (inlineCss)The page has both inline CSS and CSS requests even though it uses a HTTP/2-ish connection. If you have many users on slow connections, it can be better to only inline the CSS. Run your own tests and check the waterfall graph to see what happens.95
Description: In the early days of the Internet, inlining CSS was one of the ugliest things you can do. That has changed if you want your page to start rendering fast for your user. Always inline the critical CSS when you use HTTP/1 and HTTP/2 (avoid doing CSS requests that block rendering) and lazy load and cache the rest of the CSS. It is a little more complicated when using HTTP/2. Does your server support HTTP push? Then maybe that can help. Do you have a lot of users on a slow connection and are serving large chunks of HTML? Then it could be better to use the inline technique, becasue some servers always prioritize HTML content over CSS so the user needs to download the HTML first, before the CSS is downloaded.
Avoid CPU Long Tasks (longTasks)The page has 32 CPU long tasks with the total of 3961 ms. However the CPU Long Task is depending on the computer/phones actual CPU speed, so you should measure this on the same type of the device that your user is using. Use Geckoprofiler for Firefox or Chromes tracelog to debug your Long Task.0
Description: Long CPU tasks locks the thread. To the user this is commonly visible as a "locked up" page where the browser is unable to respond to user input; this is a major source of bad user experience on the web today. However the CPU Long Task is depending on the computer/phones actual CPU speed, so you should measure this on the same type of the device that your user is using.
Offenders:
  • multiple-contexts
  • self
  • self
  • self
  • multiple-contexts
  • self
  • self
  • self
  • multiple-contexts
  • cross-origin-descendant
  • cross-origin-descendant
  • cross-origin-descendant
  • cross-origin-descendant
  • cross-origin-descendant
  • cross-origin-descendant
  • cross-origin-descendant
  • cross-origin-descendant
  • cross-origin-descendant
  • cross-origin-descendant
  • cross-origin-descendant
  • cross-origin-descendant
  • cross-origin-descendant
  • cross-origin-descendant
  • cross-origin-descendant
  • cross-origin-descendant
  • cross-origin-descendant
  • cross-origin-descendant
  • cross-origin-descendant
  • cross-origin-descendant
  • cross-origin-descendant
  • multiple-contexts
  • multiple-contexts
Avoid doing redirects (assetsRedirects)The page has 4 redirects. 4 requests are from other domains, it could be 3rd-party assets doing unnecessary redirects. :(60
Description: A redirect is one extra step for the user to download the asset. Avoid that if you want to be fast. Redirects are even more of a showstopper on mobile.
Offenders:
Avoid extra requests by setting cache headers (cacheHeaders)The page has 203 requests that are missing a cache time. Configure a cache time so the browser doesn't need to download them every time. It will save 2.8 MB the next access.0
Description: The easiest way to make your page fast is to avoid doing requests to the server. Setting a cache header on your server response will tell the browser that it doesn't need to download the asset again during the configured cache time! Always try to set a cache time if the content doesn't change for every request.
Offenders:
Long cache headers is good (cacheHeadersLong)The page has 52 requests that have a shorter cache time than 30 days (but still a cache time).48
Description: Setting a cache header is good. Setting a long cache header (at least 30 days) is even better beacause then it will stay long in the browser cache. But what do you do if that asset change? Rename it and the browser will pick up the new version.
Offenders:
Total CSS size shouldn't be too big (cssSize)The total CSS transfer size is 70.3 kB and uncompressed size is 2.1 MB. I don't know what to say, the page needs more than 2 MB CSS to render.50
Description: Delivering a massive amount of CSS to the browser is not the best thing you can do, because it means more work for the browser when parsing the CSS against the HTML and that makes the rendering slower. Try to send only the CSS that is used on that page. And make sure to remove CSS rules when they aren't used anymore.
Avoid too many fonts (fewFonts)The page has 9 font requests. Do you really need them? What value does the fonts give the user?10
Description: How many fonts do you need on a page for the user to get the message? Fonts can slow down the rendering of content, try to avoid loading too many of them because worst case it can make the text invisible until they are loaded (FOIT—flash of invisible text), best case they will flicker the text content when they arrive.
Offenders:
Total JavaScript size shouldn't be too big (javascriptSize)The total JavaScript transfer size is 3.9 MB and the uncompressed size is 84.1 MB. This is totally crazy! There is really room for improvement here. 0
Description: A lot of JavaScript often means you are downloading more than you need. How complex is the page and what can the user do on the page? Do you use multiple JavaScript frameworks?
Avoid using incorrect mime types (mimeTypes)The page has 12 misconfigured mime types. 88
Description: It's not a great idea to let browsers guess content types (content sniffing), in some cases it can actually be a security risk.
Offenders:
Make each CSS response small (optimalCssSize)https://teacher.skyeng.ru/assets/669a2253a96c97c3aad1ea34f0ae0a06.css size is 35.6 kB (35565) and that is bigger than the limit of 14.5 kB. https://teachers.skyeng.ru/styles.fdf9a3381f615554dc8b.css size is 33.7 kB (33712) and that is bigger than the limit of 14.5 kB. Try to make the CSS files fit into 14.5 KB.80
Description: Make CSS responses small to fit into the magic number TCP window size of 14.5 KB. The browser can then download the CSS faster and that will make the page start rendering earlier.
Offenders:
Total page size shouldn't be too big (pageSize)The page total transfer size is 4.8 MB, which is more than the coach limit of 2 MB. That is really big and you need to make it smaller.0
Description: Avoid having pages that have a transfer size over the wire of more than 2 MB (desktop) and 1 MB (mobile) because that is really big and will hurt performance and will make the page expensive for the user if she/he pays for the bandwidth.
Don't use private headers on static content (privateAssets)The page has 97 requests with private headers. Make sure that the assets really should be private and only used by one user. Otherwise, make it cacheable for everyone.0
Description: If you set private headers on content, that means that the content are specific for that user. Static content should be able to be cached and used by everyone. Avoid setting the cache header to private.
Offenders:

Best practice advice (68)

TitleAdviceScore
Declare the language code for your document (language)The page is missing a language definition in the HTML tag. Define it with <html lang="YOUR_LANGUAGE_CODE">0
Description: According to the W3C recommendation you should declare the primary language for each Web page with the lang attribute inside the <html> tag https://www.w3.org/International/questions/qa-html-language-declarations#basics.
Cumulative Layout Shift (layoutShift)You have elements that shift. You should manually check the filmstrip or video and check if it will affect the user.99
Description: Cumulative Layout Shift measures the sum total of all individual layout shift scores for every unexpected layout shift that occurs during the entire lifespan of the page. A layout shift occurs any time a visible element changes its position from one rendered frame to the next.
Offenders:
  • DIV l-pcCommon__logo-menu
  • DIV l-pcCommon__item l-pcCommon__chat
  • DIV l-pcCommon__logo-menu
  • SKY-UI-ICON icon
  • #text undefined
  • DIV p-pc-teacher-index__moscow-time-wrapper
  • HR p-pc-teacher-index__greeting-separator
  • DIV p-pc-teacher-index__wrap cf
  • DIV p-pc-teacher-index__wrap cf
  • #text undefined
  • #text undefined
Meta description (metaDescription)The page is missing a meta description.0
Description: Use a page description to make the page more relevant to search engines.
Do not send too long headers (longHeaders)https://connect.face...en_US/fbevents.js has a header content-security-policy that is 629 characters long. https://mc.yandex.ru...ru/watch/64953997 has a header location that is 781 characters long. https://mc.yandex.ru...ru/watch/64953997 has a header set-cookie that is 636 characters long. https://connect.face.../1190086684478982 has a header content-security-policy that is 629 characters long. 96
Description: Do not send response headers that are too long.
Offenders:
Avoid use too many third party responses (thirdParty)The page do 45% requests to third party domains (125 requests and 622.3 kB). First party is 153 requests and 4.1 MB. The regex .*skyeng.* was used to calculate first/third party requests.50
Description: Do not load most of your content from third party URLs.
Avoid Unnecessary Headers (unnecessaryHeaders)There are 16 responses that sets a p3p header. There are 136 responses that sets both a max-age and expires header. There are 79 responses that sets a pragma no-cache header (that is a request header). There are 221 responses that sets a server header. 0
Description: Do not send headers that you don't need. We look for p3p, cache-control and max-age, pragma, server and x-frame-options headers. Have a look at Andrew Betts - Headers for Hackers talk as a guide https://www.youtube.com/watch?v=k92ZbrY815c or read https://www.fastly.com/blog/headers-we-dont-want.
Offenders:

Privacy advice (68)

TitleAdviceScore
Avoid using Google Analytics (ga)The page is using Google Analytics meaning you share your users private information with Google. You should use analytics that care about user privacy, something like https://matomo.org.0
Description: Google Analytics share private user information with Google that your user hasn't agreed on sharing.
Use a good Content-Security-Policy header to make sure you you avoid Cross Site Scripting (XSS) attacks. (contentSecurityPolicyHeader)Set a Content-Security-Policy header to make sure you are not open for Cross Site Scripting (XSS) attacks. You can start with setting a Content-Security-Policy-Report-Only header, that will only report the violation, not stop the download.0
Description: Content Security Policy is delivered via a HTTP response header, and defines approved sources of content that the browser may load. It can be an effective countermeasure to Cross Site Scripting (XSS) attacks and is also widely supported and usually easily deployed. https://scotthelme.co.uk/content-security-policy-an-introduction/.
Offenders:
Set a referrer-policy header to make sure you do not leak user information. (referrerPolicyHeader)Set a referrer-policy header to make sure you do not leak user information.0
Description: Referrer Policy is a new header that allows a site to control how much information the browser includes with navigations away from a document and should be set by all sites. https://scotthelme.co.uk/a-new-security-header-referrer-policy/.
Offenders:
Avoid third party cookies that is used to track the user. (thirdPartyCookies)The page sets 1 third party cookie.0
Description: Third party cookies are used to track the user. They are automatically blocked in Safari and Firefox.
Offenders:
  • .yandex.ru
Do not share user data with third parties. (thirdPartyPrivacy)The page has 33% requests that are 3rd party (91 requests with a size of 620.9 kB). The page also have request to companies that harvest data from users and do not respect users privacy (see https://en.wikipedia.org/wiki/Surveillance_capitalism). The page do 2 tag-manager requests and uses 1 tag-manager tool. The page do 29 survelliance requests and uses 6 survelliance tools. The page do 4 utility requests and uses 2 utility tools. The page do 57 analytics requests and uses 4 analytics tools. The page do 7 ad requests and uses 1 ad tool. The page do 13 social requests and uses 2 social tools.0
Description: Using third party requests shares user information with that third party. Please avoid that! The project https://github.com/patrickhulce/third-party-web is used to categorize first/third party requests.
Offenders:

Page info

Page info
Title(1) Личный кабинет преподавателя
Width1366
Height629
DOM elements697
Avg DOM depth13
Max DOM depth26
Iframes12
Script tags85
Local storage465 B
Session storage66 B
HTML vs AMPPlain good HTML page

Technologies used to build the page.

Data collected using Wappalyzer.  Use --browsertime.firefox.includeResponseBodies htmlor --browsertime.chrome.includeResponseBodies htmlto help Wappalyser find more information about technologies used.

TechnologyConfidenceCategory
Lua 100  Programming languages
Nginx 100  Web servers Reverse proxies
AngularJS 100  JavaScript frameworks
OpenResty 100  Web servers
Google Analytics 100  Analytics
Google Tag Manager 100  Tag managers
Facebook 100  Widgets
TrackJs 100  Analytics
Yandex.Metrika 100  Analytics
jQuery 100  JavaScript libraries
Cloudflare 100  CDN
Amplitude 100  Analytics

Data collected using Third Party Web.

Tag-manager
Google Tag Manager
Survelliance
Google Tag Manager
Google Fonts
Google Analytics
Google/Doubleclick Ads
Facebook
Other Google APIs/SDKs
Utility
imgix
Other Google APIs/SDKs
Analytics
Yandex Metrica
Amplitude Mobile Analytics
Google Analytics
Atlas Solutions
Cdn
Google Fonts
Ad
Google/Doubleclick Ads
Social
Facebook
VK
| Browser metrics | Largest Contentful Paint | Cumulative Layout Shift | Metrics from CDP | 

Browser Metrics

Google Web Vitals
Largest Contentful Paint (LCP)7.614 s
Cumulative Layout Shift (CLS)0.01
Total Blocking Time (TBT)2.361 s
Extra timings
First Contentful Paint (FCP)3.834 s
First Paint3.768 s
Largest Contentful Paint (LCP)7.614 s
Load Event End12.591 s
Fully loaded17.573 s
User Timing marks
Zone4.654 s
Zone:ZoneAwarePromise4.655 s
Zone:toString4.655 s
Zone:util4.655 s
Zone:legacy4.655 s
Zone:timers4.655 s
Zone:requestAnimationFrame4.655 s
Zone:blocking4.655 s
Zone:EventTarget4.655 s
Zone:MutationObserver4.656 s
Zone:IntersectionObserver4.656 s
Zone:FileReader4.656 s
Zone:on_property4.656 s
Zone:customElements4.673 s
Zone:XHR4.673 s
Zone:geolocation4.673 s
Zone:PromiseRejectionEvent4.673 s
User Timing measures
NameStart timeDuration
Zone4.654 s1 ms
Zone:ZoneAwarePromise4.655 s0 ms
Zone:toString4.655 s0 ms
Zone:util4.655 s0 ms
Zone:legacy4.655 s0 ms
Zone:timers4.655 s0 ms
Zone:requestAnimationFrame4.655 s0 ms
Zone:blocking4.655 s0 ms
Zone:EventTarget4.655 s0 ms
Zone:MutationObserver4.656 s0 ms
Zone:IntersectionObserver4.656 s0 ms
Zone:FileReader4.656 s0 ms
Zone:on_property4.656 s17 ms
Zone:customElements4.673 s0 ms
Zone:XHR4.673 s0 ms
Zone:geolocation4.673 s0 ms
Zone:PromiseRejectionEvent4.673 s0 ms

Largest Contentful Paint

Read more about Largest Contentful Paint.

Tag Render timeLoad timeSize
H1 7.614 s 0 ms 10.7 KB

Detected Cumulative Layout Shift

0.01 layout shift collected from the Cumulative Layout Shift API.

Server timings

There are no Server Timings.

Custom metrics collected through JavaScript

There are no custom configured scripts.

Extra metrics collected using scripting

There are no custom extra metrics from scripting.

CDP Performance

namevalue
AudioHandlers0
Documents40
Frames39
JSEventListeners1192
LayoutObjects953
MediaKeySessions0
MediaKeys0
Nodes7718
Resources903
ContextLifecycleStateObservers167
V8PerContextDatas24
WorkerGlobalScopes0
UACSSResources0
RTCPeerConnections10
ResourceFetchers40
AdSubframes0
DetachedScriptStates1
ArrayBufferContents51
LayoutCount185
RecalcStyleCount810
LayoutDuration131
RecalcStyleDuration235
DevToolsCommandDuration104
ScriptDuration6330
V8CompileDuration43
TaskDuration9806
TaskOtherDuration2963
ThreadTime9
ProcessTime14
JSHeapUsedSize86717312
JSHeapTotalSize135004160
FirstMeaningfulPaint6463
| Summary | | Largest responses | | Requests and sizes per content type | | Size and requests per domain | | Expires and last modified statistics | | Requests loaded after onLoad event | | 

PageXray

How the page is built.

Summary
HTTP versionHTTP/2.0
Total requests278
Total domains39
Total transfer size4.5 MB
Total content size83.3 MB
Responses missing compression89
Number of cookies49
Third party cookies1
Requests per response code
200264
2061
3024
3049

Largest assets on the page (by transfer size)

Requests and sizes per content type

ContentHeader SizeTransfer SizeContent SizeRequests
html0 b24.8 KB119.4 KB25
css0 b68.6 KB2.0 MB12
javascript1.4 KB3.7 MB80.2 MB79
image2.8 KB111.9 KB102.0 KB72
font0 b514.1 KB512.6 KB9
svg0 b4.6 KB8.4 KB3
json5.3 KB61.1 KB158.5 KB60
plain0 b447 B4 B1
other0 b49.1 KB243.4 KB12
audio0 b22.3 KB22.2 KB1
Total9.4 KB4.5 MB83.3 MB274

Size and requests per domain

DomainHeader SizeTransfer SizeContent SizeRequests
teacher.skyeng.ruN/A826.4 KB2.7 MB19
www.googletagmanager.comN/A112.6 KB572.7 KB2
auth-avatars-skyeng.imgix.netN/A24.1 KB23.8 KB1
cdn.amplitude.comN/A18.0 KB53.8 KB1
mc.yandex.ruN/A100.7 KB372.7 KB52
angular-widgets.skyeng.ruN/A458.0 KB1.4 MB11
fonts.gstatic.comN/A81.3 KB80.6 KB7
www.google-analytics.comN/A19.1 KB46.0 KB2
www.googleadservices.comN/A12.6 KB30.4 KB1
connect.facebook.netN/A162.5 KB571.1 KB3
top-fwz1.mail.ru3.1 KB9.6 KB21.0 KB4
vk.comN/A67.9 KB299.6 KB6
marketing-core.skyeng.ruN/A8.6 KB27.8 KB8
get4click.ru625 B630 B551 B2
api.amplitude.comN/A168 B7 B1
stats.g.doubleclick.netN/A447 B4 B1
googleads.g.doubleclick.netN/A3.1 KB5.0 KB2
widgets.skyeng.ruN/A796.9 KB1.2 MB1
rooms.vimbox.skyeng.ruN/A2.0 KB7.3 KB1
www.google.comN/A767 B126 B3
www.google.byN/A767 B126 B3
notify.vimbox.skyeng.ruN/A2.5 KB9.4 KB2
cdn.skyeng.ruN/A22.3 KB22.2 KB1
www.facebook.comN/A744 B132 B4
teachers.skyeng.ruN/A1.8 MB75.5 MB72
legal.skyeng.euN/A3.2 KB10.8 KB2
layout.skyeng.ruN/A234 B2 B1
statad.ru468 B2.2 KB4.1 KB2
analytics.skyeng.ruN/A2.5 KB5.6 KB2
ad.doubleclick.netN/AN/A0 b2
call.chatra.ioN/A9.6 KB366.0 KB10
fonts.googleapis.comN/A1000 B2.2 KB1
adservice.google.comN/A744 B42 B1
cx.atdmt.comN/A649 B43 B1
id.skyeng.ru5.3 KB8.6 KB17.2 KB10
chat.chatra.ioN/AN/A0 b10
tramway.skyeng.ruN/A9.5 KB10.0 KB12
api.teachers.skyeng.ruN/A4.0 KB2.2 KB10
www.googleapis.comN/A2.6 KB3.2 KB4

Expires and last modified statistics

typeminmedianmax
Expires0 seconds0 seconds10 years
Last modified0 seconds7 days50 years

Requests loaded after onLoad event

ContentTransfer SizeRequests
html0 b2
css0 b0
javascript0 b0
image11.9 KB26
font0 b0
json3.4 KB4
other0 b1
svg1.1 KB1
Total16.4 KB34

Requests loaded after onContentLoad

Includes requests done after onLoad.

ContentTransfer SizeRequests
html0 b13
css33.9 KB11
javascript2.0 MB48
image79.5 KB54
font498.2 KB8
json54.4 KB51
other49.1 KB11
svg1.7 KB2
Total2.7 MB201
| Categories | | Tools | | Cookies | | First vs third | 

Third party

Third party requests categorised by Third party web.

CategoryRequests
tag-manager 2
survelliance 29
utility 4
analytics 57
cdn 8
ad 7
social 13
CategoryNumber of tools
tag-manager 1
survelliance 6
utility 2
analytics 4
cdn 1
ad 1
social 2

Third party requests and tools

tag-manager (2 requests)
Google Tag Manager
survelliance (29 requests)
Google Tag Manager
Google Fonts
Google Analytics
Google/Doubleclick Ads
Facebook
Other Google APIs/SDKs
utility (4 requests)
imgix
Other Google APIs/SDKs
analytics (57 requests)
Amplitude Mobile Analytics
Yandex Metrica
Google Analytics
Atlas Solutions
cdn (8 requests)
Google Fonts
ad (7 requests)
Google/Doubleclick Ads
social (13 requests)
Facebook
VK

Unmatched third party domains

Here's a list of domains that didn't match any tool in Third party web. If you are sure they are third party domains, please do a PR to that project. You can also fine tune the list using --firstParty.

top-fwz1.mail.ru
get4click.ru
www.google.by
statad.ru
call.chatra.io
chat.chatra.io
www.googleapis.com

Third party cookies

Cookie nameDomain
yandexuid .yandex.ru

First party requests and sizes per content type

Calculated using .*skyeng.* (use --firstParty to configure).

ContentHeader SizeTransfer SizeContent SizeRequests
html0 b24.6 KB119.4 KB12
css0 b67.7 KB2.0 MB11
javascript0 b3.2 MB77.9 MB52
image0 b101.8 KB99.5 KB14
font0 b432.8 KB432.0 KB2
svg0 b4.6 KB8.4 KB3
json5.3 KB55.3 KB152.9 KB46
other0 b49.1 KB243.4 KB12
audio0 b22.3 KB22.2 KB1
Total5.1 KB3.9 MB80.9 MB153

Third party requests and sizes per content type

ContentHeader SizeTransfer SizeContent SizeRequests
html0 b168 B7 B13
css0 b1000 B2.2 KB1
javascript1.4 KB509.0 KB2.3 MB27
image2.8 KB10.1 KB2.5 KB58
font0 b81.3 KB80.6 KB7
json0 b5.7 KB5.7 KB14
plain0 b447 B4 B1
Total4.0 KB607.7 KB2.4 MB125

No screenshots.